package org.intellij.lang.assembly.highlighter;

import com.intellij.psi.TokenType;
import com.intellij.psi.tree.IElementType;
import com.intellij.psi.tree.TokenSet;

/**
 * @author weijiancai
 * @version 1.0
 */
public interface AssemblyTokenTypes {
    IElementType WHITE_SPACE = TokenType.WHITE_SPACE;
    IElementType BAD_CHARACTER = TokenType.BAD_CHARACTER;

    IElementType STRING_LITERAL = new AssemblyElementType("STRING_LITERAL");
    IElementType LABEL = new AssemblyElementType("LABEL");
    IElementType LABEL_REFERENCE = new AssemblyElementType("LABEL_REFERENCE");
    IElementType END_OF_LINE_COMMENT = new AssemblyElementType("END_OF_LINE_COMMENT");
    IElementType VARIABLE = new AssemblyElementType("VARIABLE");
    IElementType TEXT = new AssemblyElementType("TEXT");

    IElementType SEGMENT_KEYWORD = new AssemblyElementType("SEGMENT_KEYWORD");
    IElementType ENDS_KEYWORD = new AssemblyElementType("ENDS_KEYWORD");
    IElementType END_KEYWORD = new AssemblyElementType("END_KEYWORD");
    IElementType ASSUME_KEYWORD = new AssemblyElementType("ASSUME_KEYWORD");
    IElementType MOV_KEYWORD = new AssemblyElementType("MOV_KEYWORD");

    TokenSet KEYWORDS = TokenSet.create(
            SEGMENT_KEYWORD,
            ENDS_KEYWORD,
            END_KEYWORD,
            ASSUME_KEYWORD,
            MOV_KEYWORD
    );
}
